const jwt = require('jsonwebtoken');

// 验证JWT令牌的中间件
exports.verifyToken = (req, res, next) => {
  
  const token = req.headers['authorization'];


  if (!token) {
    return res.status(403).json({ message: '未提供访问令牌' });
  }

  try {
    const decoded = jwt.verify(token, process.env.JWT_SECRET);
    req.id = parseInt(decoded.id);
    req.roleId = parseInt(decoded.roleId);
    next();
  } catch (error) {
    return res.status(401).json({ message: '无效的令牌或令牌已过期' });
  }
};

// 检查用户是否为管理员
exports.isAdmin = (req, res, next) => {
  if (req.roleId !== 1) {
    return res.status(403).json({ message: '需要管理员权限' });
  }
  next();
};

// 检查用户是否为学科组长 
exports.isSubjectGroupLeader = (req, res, next) => {
  if (req.roleId !== 2 ) {
    return res.status(403).json({ message: '需要学科组长权限' });
  }
  next();
}; 

// 检查用户是否为教师   
exports.isTeacher = (req, res, next) => {
  if (req.roleId !== 3 ) {
    return res.status(403).json({ message: '需要教师权限' });
  }
  next();
}; 